package com.sunwayworld.basemodule.rm.train.question.bean;

import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import com.alibaba.fastjson.annotation.JSONField;
import com.sunwayworld.framework.data.annotation.Id;
import com.sunwayworld.framework.data.annotation.NotNull;
import com.sunwayworld.framework.data.annotation.Table;
import com.sunwayworld.framework.data.annotation.Transient;
import com.sunwayworld.framework.support.domain.AbstractInsertable;
import com.sunwayworld.framework.support.domain.Activatable;
import com.sunwayworld.framework.support.domain.Insertable;
import com.sunwayworld.framework.support.domain.Suspendable;

/**
 * 题目
 * 
 * @author zhangpf 2020年3月9日
 *
 */
@Table("T_CORE_QUESTION")
public class LimsCoreQuestionBean extends AbstractInsertable<Long> implements Insertable<Long>, Activatable<Long>, Suspendable<Long> {

    @Transient
    private static final long serialVersionUID = -2472665167183562213L;

    @Id
    private Long id;// 主键

    private String questionCategory; // 题目类别(T_CORE_CODE safetyTraining:安全培训/theoreticalTraining:理论培训...)

    private String questionType; // 题目类型(T_CORE_CODE singleChoice:单选题/multipleChoice:多选题/judgement:判断题/shortAnswer:简答题)

    private String questionContent; // 题目内容

    private String answer; // 答案
    
    private String judgementAnswer; // 答案
    
    private Long questionTypeOrderNo; // 题目类型排序号

    private String lastUpdatedById; // 维护人编码

    private String lastUpdatedByName; // 维护人名称

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastUpdatedTime; // 维护时间

    @NotNull(defaultValue = "0")
    private String activatedFlag; // 启用标志
    private String activatedById; // 启用人编码
    private String activatedByName; // 启用人名称
    
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime activatedTime; // 启用时间

    @NotNull(defaultValue = "0")
    private String lastSuspendedFlag; // 注销标志(用于逻辑删除)
    private String lastSuspendedById; // 注销人编码
    private String lastSuspendedByName; // 注销人名称
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastSuspendedTime; // 注销时间

    private String createdById; // 制单人编码
    private String createdByName;// 制单人名称
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime; // 制单时间
    private String createdByOrgId; // 制单人单位编码
    private String createdByOrgName; // 制单人单位名称

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getQuestionCategory() {
        return questionCategory;
    }

    public void setQuestionCategory(String questionCategory) {
        this.questionCategory = questionCategory;
    }

    public String getQuestionType() {
        return questionType;
    }

    public void setQuestionType(String questionType) {
        this.questionType = questionType;
    }

    public String getQuestionContent() {
        return questionContent;
    }

    public void setQuestionContent(String questionContent) {
        this.questionContent = questionContent;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }
    
    public String getJudgementAnswer() {
        return judgementAnswer;
    }

    public void setJudgementAnswer(String judgementAnswer) {
        this.judgementAnswer = judgementAnswer;
    }

    public Long getQuestionTypeOrderNo() {
        return questionTypeOrderNo;
    }

    public void setQuestionTypeOrderNo(Long questionTypeOrderNo) {
        this.questionTypeOrderNo = questionTypeOrderNo;
    }

    public String getLastUpdatedById() {
        return lastUpdatedById;
    }

    public void setLastUpdatedById(String lastUpdatedById) {
        this.lastUpdatedById = lastUpdatedById;
    }

    public String getLastUpdatedByName() {
        return lastUpdatedByName;
    }

    public void setLastUpdatedByName(String lastUpdatedByName) {
        this.lastUpdatedByName = lastUpdatedByName;
    }

    public LocalDateTime getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(LocalDateTime lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public String getActivatedFlag() {
        return activatedFlag;
    }

    public void setActivatedFlag(String activatedFlag) {
        this.activatedFlag = activatedFlag;
    }

    public String getActivatedById() {
        return activatedById;
    }

    public void setActivatedById(String activatedById) {
        this.activatedById = activatedById;
    }

    public String getActivatedByName() {
        return activatedByName;
    }

    public void setActivatedByName(String activatedByName) {
        this.activatedByName = activatedByName;
    }

    public LocalDateTime getActivatedTime() {
        return activatedTime;
    }

    public void setActivatedTime(LocalDateTime activatedTime) {
        this.activatedTime = activatedTime;
    }

    public String getLastSuspendedFlag() {
        return lastSuspendedFlag;
    }

    public void setLastSuspendedFlag(String lastSuspendedFlag) {
        this.lastSuspendedFlag = lastSuspendedFlag;
    }

    public String getLastSuspendedById() {
        return lastSuspendedById;
    }

    public void setLastSuspendedById(String lastSuspendedById) {
        this.lastSuspendedById = lastSuspendedById;
    }

    public String getLastSuspendedByName() {
        return lastSuspendedByName;
    }

    public void setLastSuspendedByName(String lastSuspendedByName) {
        this.lastSuspendedByName = lastSuspendedByName;
    }

    public LocalDateTime getLastSuspendedTime() {
        return lastSuspendedTime;
    }

    public void setLastSuspendedTime(LocalDateTime lastSuspendedTime) {
        this.lastSuspendedTime = lastSuspendedTime;
    }

    public String getCreatedById() {
        return createdById;
    }

    public void setCreatedById(String createdById) {
        this.createdById = createdById;
    }

    public String getCreatedByName() {
        return createdByName;
    }

    public void setCreatedByName(String createdByName) {
        this.createdByName = createdByName;
    }

    public LocalDateTime getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(LocalDateTime createdTime) {
        this.createdTime = createdTime;
    }

    public String getCreatedByOrgId() {
        return createdByOrgId;
    }

    public void setCreatedByOrgId(String createdByOrgId) {
        this.createdByOrgId = createdByOrgId;
    }

    public String getCreatedByOrgName() {
        return createdByOrgName;
    }

    public void setCreatedByOrgName(String createdByOrgName) {
        this.createdByOrgName = createdByOrgName;
    }

}